namespace CoCoonCoreWM6
{
    public class Instruction
    {
        public string Opcode { get; set; }

        public string Mnemonic { get; set; }
        
        public string RegisterKey { get; set; }

        public CpuAction Action { get; set; }

        public AddressingMode AddressingMode { get; set; }

        public string Destination { get; set; }

        //Nr Of Bytes
        public short Bytes { get; set; }

        //Read Or Write; false = read
        public bool Write { get; set; }

        //TODO Cycles


    }

    public enum CpuAction
    {
        ReadMemory,
        WriteMemory,
        Add
    }

    public enum AddressingMode
    {
        Immediate, 
        Direct, 
        Extended, 
        Indexed
    }

}